Vim 编译脚本
Vimrc 中
" Compile map <F7> :call CompileRun()<cr> imap <F7> <Esc>:call CompileRun()<cr>
C:\Program Files\Vim\vimfiles\plugin\ComplieRun.vim
" " compile c " if exists("loaded_CompileRun") finish endif let loaded_CompileRun = 1 function CompileRun() python <<EOF import vim import os vim.command(':w') filename = vim.current.buffer.name [filebasename , fileext] = os.path.splitext( os.path.basename(filename) ) if filebasename == 'sconstruct' and fileext == '' : vim.command('!scons') elif fileext == '.cpp' or fileext == '.c' : if os.path.exists( 'sconstruct' ) : vim.command('!scons') elif 'cv' in '\n'.join( vim.current.buffer[0:10] ) : filetpl = r'''import os import glob cvinclude = [r'D:\OpenCV24\opencv\build\include',r'D:\OpenCV24\opencv\build\include\opencv',r'D:\OpenCV24\opencv\build\include\opencv2'] #dlibpath = r'D:\OpenCV24\opencv\build\x86\vc10\bin' #slibpath = r'D:\OpenCV24\opencv\build\x86\vc10\staticlib' libpath = r'D:\OpenCV24\opencv\build\x86\vc10\lib' cvlibs = glob.glob(libpath+os.sep+'*.lib') cvlibs = [ os.path.splitext( os.path.basename(cvlib) )[0] for cvlib in cvlibs ] env = Environment() env.Program(target='%s', source=['%s'], LIBS=cvlibs, LIBPATH=[libpath], CPPPATH=cvinclude, ) ''' % (filebasename,filebasename+fileext) open('sconstruct','w').write(filetpl) vim.command(':new sconstruct') else : filetpl = '''#import os', env = Environment() env.Program(target='%s', source=['%s'], ) ''' % (filebasename,filebasename+fileext) open('sconstruct','w').write(filetpl) vim.command(':new sconstruct') elif fileext == '.java' : vim.command('!javac %s' % filebasename+fileext) sym = 'applet' if sym in '\n'.join( vim.current.buffer[0:3] ) and not os.path.exists(filebasename+'.html'): tpl = '''<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>ial</title> </head> <body> <applet code='%s.class' height=200 width=300> </applet> </body> </html> ''' % filebasename file(filebasename+'.html','w').write(tpl) vim.command( ':new %s' % filebasename+'.html' ) EOF endfunction " command! Compilec call CompileC() " nmap <silent> <Leader>tt :call AutoTpl()<CR> " command! <leader>NN call VimPlayer() " "if !hasmapto('<Plug>VimPlayer') " nmap <silent><unique> <Leader>pp <Plug>VimPlayer "endif "nnoremap <unique><script> <Plug>VimPlayer:VimPlayer<CR>